#ifndef ANALOG_SENSOR
#define	ANALOG_SENSOR

// ***************************************************************************
// CHANGE LOG
//
// ***************************************************************************

// ***************************************************************************
// ***************************************************************************
// Section: Includes
// ***************************************************************************
// ***************************************************************************
#include "IAnalogDigitalConverter.h"
#include "ISensor.h"

// ***************************************************************************
// ***************************************************************************
// Section: Constants & Data Types
// ***************************************************************************
// ***************************************************************************

/*! \brief Allows reading to an Analog Sensor
 */

class AnalogSensor : public ISensor
{
  public:
	AnalogSensor(IAnalogDigitalConverter *adc, UINT32 channel);
	virtual ~AnalogSensor();
	virtual void UpdateValue();
	virtual float GetValue();
	virtual unsigned char GetSensorNumber() = 0;
	virtual std::string GetSensorName() = 0;

  private:
	IAnalogDigitalConverter *_adc;
	UINT32 _channel;
	float _value;
};
#endif